/*
 * NvsClient.h
 *
 *  Created on: 2018年8月2日
 *      Author: zhengboyuan
 */

#ifndef NVSCLIENT_H_
#define NVSCLIENT_H_

#include "NetVideoSystem.h"
#include "LibMediaDecoder.h"

class NvsClient
{
public:
    static void Init();

    static void Quit();

public:
    NvsClient();
    virtual ~NvsClient();

    /**
     * 登录
     * @param ip        服务器IP地址
     * @param port      服务器端口
     * @param username  用户名
     * @param password  用户密码
     * @return
     */
    bool Login(const char* ip, int port, const char* username, const char* password);

    /**
     * 登出
     */
    void Logout();

    /**
     * 是否登录进系统
     * @return
     */
    bool IsLogin();

    /**
     * 设置配置参数
     * @param name      名称
     * @param value     值
     * @return
     */
    int SetParam(const char* name, const char* value);


    /// PTZ 控制

    /**
     * 控制云镜
     * @param id    设备ID
     * @param cmd   命令
     * @param speed 速度
     * @param data  附加数据
     * @return
     */
	int ControlPtz(const char* id, int cmd, int speed, int data);

	nvs::NetVideoSystem* getVideoSystem();

protected:
    nvs::NetVideoSystem*    m_system;

	bool	m_shouldLogout;

};

#endif /* NVSCLIENT_H_ */
